Automatic Verification of Integer Array Programs

نویسندگان

  • Marius Bozga
  • Peter Habermehl
  • Radu Iosif
  • Filip Konecný
  • Tomás Vojnar
چکیده

We provide a verification technique for a class of programs working on integer arrays of finite, but not a priori bounded length. We use the logic of integer arrays SIL [13] to specify preand post-conditions of programs and their parts. Effects of non-looping parts of code are computed syntactically on the level of SIL. Loop pre-conditions derived during the computation in SIL are converted into counter automata (CA). Loops are automatically translated— purely on the syntactical level—to transducers. Pre-condition CA and transducers are composed, and the composition over-approximated by flat automata with difference bound constraints, which are next converted back into SIL formulae, thus inferring post-conditions of the loops. Finally, validity of post-conditions specified by the user in SIL may be checked as entailment is decidable for SIL.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Rule-based Verification Strategy for Array Manipulating Programs

We present a method for verifying properties of imperative programs that manipulate integer arrays. Imperative programs and their properties are represented by using Constraint Logic Programs (CLP) over integer arrays. Our method is refutational. Given a Hoare triple {φ} prog {ψ} that defines a partial correctness property of an imperative program prog, we encode the negation of the property as...

متن کامل

Status Report on Software Verification

This report describes the 3rd International Competition on Software Verification (SV-COMP 2014), which is the third edition of a thorough comparative evaluation of fully automatic software verifiers. The reported results represent the state of the art in automatic software verification, in terms of effectiveness and efficiency. The verification tasks of the competition consist of nine categorie...

متن کامل

Array Data--ow Analysis for Imperative Recursive Programs

Data-ow analysis is extremely important to detect parallelism. Therefore, the current lack of suitable analysis makes recursion in the control ow still an open problem in automatic parallelization. This paper presents a novel data-ow analysis for imperative recursive programs. The data-ow sources are represented by closed forms expressions, parametrized with an index on the current node in the ...

متن کامل

Automating Regression Verification of Pointer Programs by Predicate Abstraction

Regression verification is an approach complementing regression testing with formal verification. The goal is to formally prove that two versions of a program behave either equally or differently in a precisely specified way. In this paper, we present a novel automatic approach for regression verification that reduces the equivalence of two related imperative pointer programs to constrained Hor...

متن کامل

Fully Automatic Verification of Absence of Errors via Interprocedural Integer Analysis

We present a interprocedural C String Static Verifier (iCSSV), a whole program analysis algorithm for verifying the safety of string operations in C programs. The algorithm automatically proves linear relationships among pointer expressions. The algorithm is conservative, i.e., it infers only valid relationships although it may fail to detect some of them. The algorithm is targeted to programs ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009